Coupling, code reuse and open implementation in reflective systems

نویسنده

  • Youssef Hassoun
چکیده

Little research has been conducted in investigating the implications of employing reflection in object-oriented (OO) systems on software qualities such as coupling and reuse. In this thesis, we investigate the reflective capabilities of Java as a representative of mainstream OO languages and propose a behavioural reflection model, which complements the language’s inextensible, introspective, structural reflection model. We show that reflective systems based on the proposed model support the principle of open implementation, and exhibit less coupling and a higher level of code reuse. Programming examples explain how the behaviour of such systems can be customised or adapted without changing their default behaviour or structure. We then show that the model is also applicable to distributed systems allowing for generic coding on the server side. We address the question of assessing coupling and code reuse qualities of reflective systems quantitatively. For this purpose, we define a dynamic coupling metric and a measuring tool that allows the collection of object coupling data at runtime. A case study shows that our coupling metric can be measured automatically and confirms the hypothesis about the relatively low coupling of reflective systems in comparison with equivalent systems based on the classical non-reflective programming model. As for code reuse, we define OO reuse metrics by extending a set of metrics previously developed for procedural languages. A case study is used to confirm the hypothesis that reflective systems are more reusable than non-reflective systems exhibiting the same behaviour.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Dwarf Frankenstein is still in your memory: tiny code reuse attacks

Code reuse attacks such as return oriented programming and jump oriented programming are the most popular exploitation methods among attackers. A large number of practical and non-practical defenses are proposed that differ in their overhead, the source code requirement, detection rate and implementation dependencies. However, a usual aspect among these methods is consideration of the common be...

متن کامل

Bootstrapping Traits

Despite the undisputed prominence of inheritance as the fundamental reuse mechanism in object-oriented programming languages, the variants – single inheritance, multiple inheritance, and mixin inheritance – all suffer from conceptual and practical problems. Traits overcome the problems arising with the different variants of inheritance. Traits are essentially groups of methods that serve as bui...

متن کامل

A Reflective Object-Oriented Architecture for Developing Fault-Tolerant Software

This paper proposes a reflective object-oriented architecture for developing fault-tolerant software. Reflective object-oriented programming promotes a modular structuring of systems by means of a new dimension of modularization—the separation between baselevel objects and meta-level objects. This property allows the creation of metaobjects responsible for managing tasks of application objects ...

متن کامل

Managing Evolution Using Cooperative Designs and a Reflective Architecture

The separation of concerns is important to attain object oriented systems which can be easily evolved. This paper presents a reflective architecture which enforces the separation of concerns by allocating functional, interaction and synchronization code to different levels. A variant of collaborations (CO actions) is used to capture interactions between objects and avoids spreading the descript...

متن کامل

Identifying and Improving Reusability Based on Coupling Patterns

Open Source Software (OSS) communities have not yet taken full advantage of reuse mechanisms. Typically many OSS projects which share the same application domain and topic, duplicate effort and code, without fully leveraging the vast amounts of available code. This study proposes the empirical evaluation of source code folders of OSS projects in order to determine their actual internal reuse an...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005